home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-05-15 | 75.9 KB | 2,113 lines |
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- N✓NA✓AM✓ME✓E
- ss - simple spreadsheet program
-
- S✓SY✓YN✓NO✓OP✓PS✓SI✓IS✓S
- s✓ss✓s [ -✓-c✓c ] [ -✓-m✓m ] [ -✓-r✓r ] [ -✓-o✓o ] [ -✓-x✓x ] [ -✓-C✓C ] [ -✓-R✓R ] [ -✓-L✓L ]
- [ _✓f_✓i_✓l_✓e ]
-
- D✓DE✓ES✓SC✓CR✓RI✓IP✓PT✓TI✓IO✓ON✓N
- _✓s_✓s is a spreadsheet program (big surprise!).
-
- It is not another Lotus 1-2-3(tm) or Excel(tm) or etc
- spreadsheet program that consumes megabytes of disk space
- and is full of whiz-bang graphics and fonts and so on and
- so forth that the average user (IMHO) needs and uses only
- infrequently.
-
- _✓s_✓s is a character based program that should run on any
- standard ASCII terminal. It is based on rectangular
- tables much like a financial spreadsheet. When invoked it
- presents you with a table organized as rows and columns of
- cells - just like any ``normal'' spreadsheet program.
-
- O✓OP✓PT✓TI✓IO✓ON✓NS✓S
- -✓-c✓c Start the program with input method set to 'CR ter-
- minated'. (See below)
-
- -✓-m✓m Start the program with automatic recalculation dis-
- abled. The spreadsheet will be recalculated only
- when the recalc command (see below) is used.
-
- -✓-r✓r Start the program with the recalculation being done
- in row order (default option).
-
- -✓-o✓o Start the program with the recalculation being done
- in column order.
-
- -✓-x✓x Cause the data files to be decrypted/encrypted when
- read/written. (This option may not be available at
- your site, depending on the capabilities of your
- computer system, check with your system administra-
- tor.)
-
- -✓-R✓R Start the program with automatic newline action set
- to increment the row (see below).
-
- -✓-C✓C Start the program with automatic newline action set
- to increment the column (see below).
-
- -✓-L✓L Start the program with automatic newline action set
- to move in whatever direction the cell-cursor last
- moved (see below).
-
- f✓fi✓il✓le✓e If invoked without a _✓f_✓i_✓l_✓e argument, the table is
- initially empty. Otherwise _✓f_✓i_✓l_✓e is read in.
-
-
-
- 1
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- All of these options can also be changed from within _✓s_✓s.
- Those changes will then be saved when the current spread-
- sheet is saved, and reloaded when that spreadsheet is read
- in from disk. Options specified when _✓s_✓s is invoked over-
- ride options saved in the data file.
-
- I✓IN✓NT✓TR✓RO✓OD✓DU✓UC✓CT✓TI✓IO✓ON✓N
- _✓s_✓s is based upon the well-known (?) public domain spread-
- sheet program ``s✓sc✓c'', version 6.19.
-
- _✓s_✓s is an ``un-moded'' program. It does not have separate
- input and output modes that you toggle between. To enter
- numbers into your spreadsheet, go ahead and start typing.
- You can enter text the same way, just do it (more detail
- on these operations below).
-
- If your keyboard has Arrow keys and/or Page-Up and Page-
- Down keys, they should work as you expect them too. If
- they don't, talk to whomever installed this program on
- your system, it could be a simple terminfo/termcap prob-
- lem. If your keyboard doesn't have cursor movement keys,
- relax. When you use _✓s_✓s you can also use the same cursor
- movement commands as emacs (more on that below, also).
-
- There are a wide selection of financial and other ``stan-
- dard'' spreadsheet functions that you can use. They are
- listed and explained in detail below. (Wow, sure must be
- a lot of stuff below!)
-
- Finally, instead of forcing you to memorize bazillions of
- different commands, _✓s_✓s places most operations (Save, Move,
- etc) in menus. These menus are probably vaguely familiar
- to you, since they were inspired by a certain well-known
- DOS spreadsheet program. Go ahead, hit the ``/'' key.
- You probably will figure many things out without even
- reading on in this man page.
-
- However, you probably should read on, because there's
- lot's to learn. I'd also hate to have typed all this in
- for nothing! :-)
-
- NOTE: This man page assumes that the reader has a general
- familiarity with spreadsheet programs.
-
- S✓Sc✓cr✓re✓ee✓en✓n L✓La✓ay✓yo✓ou✓ut✓t
- The screen is divided into four regions. The top line is
- for entering commands/data and displaying cell values.
- The second line is for messages from _✓s_✓s. The third line
- and the first four columns show the column and row num-
- bers, from which are derived cell addresses, e.g. _✓A_✓0 for
- the cell in column A, row 0. Note that column names are
- case-insensitive: Entering _✓A_✓0 is equivalent to _✓a_✓0.
-
- The rest of the screen forms a window looking at a portion
-
-
-
- 2
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- of the table. The total number of table rows and columns
- displayed is set by _✓c_✓u_✓r_✓s_✓e_✓s(3) and may be overridden by
- setting the LINES and COLUMNS environment variables,
- respectively.
-
- [ Note to X-Windows users; Yes you can resize your
- terminal windows. The next time a command is pro-
- cessed, or the screen is redrawn, _✓s_✓s will figure
- things out and adjust itself. ]
-
- The screen has three cursors: a cell cursor, indicated by
- a highlighted cell and a ``<'' on the screen, a menu cur-
- sor, indicated by a highlighted menu item (it functions
- much like the cell cursor), and a character cursor, indi-
- cated by the terminal's hardware cursor. The cell and
- character cursors are often the same. They differ when
- you type a command on the top line.
-
- If a cell's numeric value is wider than the column width,
- the cell is filled with asterisks. If a cell's label
- string is wider than the column width, it is truncated at
- the start of the next non-blank cell in the row, if any.
-
- H✓Ho✓ow✓w I✓In✓np✓pu✓ut✓t I✓Is✓s P✓Pr✓ro✓oc✓ce✓es✓ss✓se✓ed✓d
- Let's assume that you have just started _✓s_✓s, so that you
- are at the ``top-level'' of input processing. You enter a
- keystroke; a number or letter, arrow key or function key.
- The program reads your input and processes it as follows:
-
- C✓Co✓on✓nt✓tr✓ro✓ol✓l-✓-k✓ke✓ey✓y,✓, A✓Ar✓rr✓ro✓ow✓w k✓ke✓ey✓y,✓, o✓or✓r F✓Fu✓un✓nc✓ct✓ti✓io✓on✓n k✓ke✓ey✓y
- The appropriate function is performed (ie: Move
- the cursor to the next row). See the section below
- entitled C✓CO✓OM✓MM✓MA✓AN✓ND✓DS✓S.
-
- `✓`/✓/'✓' The main top-level menu is displayed and the pro-
- gram enters ``menu-mode''. See the section below
- entitled M✓ME✓EN✓NU✓US✓S.
-
- `✓`0✓0-✓-9✓9'✓',✓,`✓`-✓-'✓',✓,`✓`.✓.'✓',✓,`✓`+✓+'✓',✓,`✓`@✓@'✓'
- It is assumed that you are entering a number (or a
- numeric function, in the case of `@'), into the
- current cell.
-
- `✓`=✓='✓' This is retained for compatibility with ``sc'' .
- It signals that you wish to enter a number/function
- in the current cell.
-
- `✓`"✓"'✓',✓,`✓`>✓>'✓',✓,`✓`<✓<'✓'
- These characters indicate that you want to enter a
- centered ("), right-justified (>), or left-
- justified (<) string (or string expres-
- sion/function) into the cell.
-
- Note that when entering a string, a double quote
-
-
-
- 3
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- (") is placed at the start of the input window.
- This is so the program can distinguish between con-
- stant strings (eg: "Beam Me Up!") and string func-
- tions or expressions (eg: @date(@now) ). If you
- are entering a string constant, just ignore the
- double quote and enter your string. A closing
- quote is not required. If you are entering a
- string function, just backspace over the quote to
- delete it, and then enter your function.
-
- D✓De✓ef✓fa✓au✓ul✓lt✓t:✓:
- The entry of any other character is taken to be a
- signal that you wish to enter a left-justified
- string. Unlike the previous item, in this instance
- no double quote is placed in the input buffer.
- This is nice, since most of the time you enter text
- this way, and don't have to deal with the double
- quote.
-
- M✓ME✓EN✓NU✓US✓S
- The main (top-level) menu is invoked with the `/' key.
-
- Menus are displayed on the top line of the screen. Each
- menu item is usually one (hopefully self-explanatory)
- word. Each menu item begins with a single letter (eg:
- ``F:File'').
-
- The left-most item in a menu is initially highlighted.
- This is the ``menu-cursor''. By using the left/right
- arrow keys (or ^B/^F), the menu cursor can be moved left
- and right. As each menu item is highlighted, a one-line
- description of that command is displayed on the second
- line. Typing return will execute the currently selected
- menu item.
-
- There is also a short-cut for choosing menu items: By
- typing the key corresponding to the first letter in any
- menu item- case is unimportant - you immediately select
- that menu item.
-
- I tried to have all the highlighted letters match the
- first letter of their menu item, but unfortunately there
- had to be a few exceptions. Watch for those!
-
- By entering <Delete> or <Backspace>, (your choice) you can
- back up one menu level.
-
- By typing a <Space> you will abort out of a menu (no mat-
- ter how deep you are into sub-menu's) back to the top-
- level of the program.
-
- M✓Ma✓ai✓in✓n M✓Me✓en✓nu✓u
- F✓F:File E✓E:Edit C✓C:Cell R✓R:Row O✓O:Column V✓V:View I✓I:Input M✓M:Misc
- Q✓Q:Quit N✓N:Name
-
-
-
- 4
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- With the exception of Q✓Qu✓ui✓it✓tandN✓Na✓am✓me✓e,✓, all menu items on the
- Main Menu invoke sub-menus. See below for explanations of
- those.
-
- _✓Q_✓u_✓i_✓t Exit from the program. If there have been any
- changes in the spreadsheet since the last Load or
- Save command, _✓s_✓s asks about saving your data before
- exiting.
-
- _✓N_✓a_✓m_✓e Display the current filename.
-
- F✓Fi✓il✓le✓e S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- L✓L:Load M✓M:Merge S✓S:Save A✓A:SaveA✓As✓s W✓W:Write txt T✓T:Tbl
- save(_✓m_✓o_✓d_✓e) Q✓Q:Quit
-
- _✓L_✓o_✓a_✓d Load a new spreadsheet file from disk. Enter the
- name of a spreadsheet file to load, followed by
- <CR>. If encryption is enabled, the file is
- decrypted before it is loaded into the spreadsheet.
-
- NOTE: _✓s_✓s files are (currently) identical to ``sc''
- data files.
-
- _✓M_✓e_✓r_✓g_✓e Merge the spreadsheet from the named file into the
- current one. Values and expressions defined in the
- named file are read into the current spreadsheet,
- overwriting the existing entries at matching cell
- locations.
-
- _✓S_✓a_✓v_✓e Save the current spreadsheet into a file. If
- encryption is enabled, the file is encrypted before
- it is saved.
-
- _✓S_✓a_✓v_✓e _✓A_✓s
- Prompt the user to enter a filename, and then save
- the spreadsheet into a file with that name. If a
- <CR> is entered, the current default filename is
- used. The newly entered filename becomes the new
- default filename. If encryption is enabled, the
- file is encrypted before it is saved.
-
- _✓W_✓r_✓i_✓t_✓e _✓T_✓x_✓t
- Write a text-only listing of the current spread-
- sheet (No functions, etc) into a file in a form
- that matches its appearance on the screen.
-
- This differs from the ``Save'' commands in that
- files saved with those commands are intended to be
- reloaded with ``Load'', while ``Write txt'' pro-
- duces a file for people to look at. Hidden rows or
- columns are not shown when the data is printed.
-
- _✓T_✓a_✓b_✓l_✓e _✓S_✓a_✓v_✓e
- Write a text-only listing of the current
-
-
-
- 5
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- spreadsheet to a file, but include delimiters suit-
- able for processing by the _✓t_✓b_✓l, _✓L_✓a_✓T_✓e_✓X, _✓T_✓e_✓X, or
- _✓F_✓r_✓a_✓m_✓e_✓M_✓a_✓k_✓e_✓r table processors.
-
- The _✓t_✓b_✓l_✓s_✓t_✓y_✓l_✓e option (see the ``Table Style'' item
- on the Misc menu) controls which delimiters are
- output. The current setting of _✓t_✓b_✓l_✓s_✓t_✓y_✓l_✓e is dis-
- played in parentheses after the ``Tbl Save'' entry
- of the File menu. A question mark (?) indicates
- that no style has been defined (style 0).
-
- _✓Q_✓u_✓i_✓t Exit from the program. This option is identical to
- the Quit option on the main top-most menu. (Actu-
- ally the Quit option on the main top-most menu is
- identical to _✓t_✓h_✓i_✓s option, but that really is irrel-
- evant).
-
- With the ``Save'', ``Write Text'', and ``Table Save'' com-
- mands, it is possible to save a subset of the spreadsheet
- to the output file. To do that, a _✓r_✓a_✓n_✓g_✓e must be defined
- prior to invoking those commands. See the section below
- on Ranges, for instructions on defining a range.
-
- With the ``Write Text'' and ``Table Save'' commands, if
- you try to write to the filename used with the most recent
- ``Load'' or ``Save/Save As'' commands, or to the file
- specified on the command line when _✓s_✓s was invoked, you are
- asked to confirm that the (potentially) dangerous opera-
- tion is really what you want.
-
- The four output commands, (``Save'', ``Save As'', ``Write
- Text'' and ``Table Save''), can pipe their (unencrypted
- only) output to a program. To use this feature, enter ``|
- program'' to the prompt asking for a filename. For exam-
- ple, to redirect the output of the ``Write Text'' command
- to the printer, you might enter ``| lpr -p''.
-
- E✓Ed✓di✓it✓t S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- C✓C:Copy E✓E:Erase N✓N:Name L✓L:Lock U✓U:Unlck F✓F:Format I✓I:Fill
- V✓V:Valueize
-
- _✓C_✓o_✓p_✓y Copy a source range to a destination range. The
- source and destination may be different sizes. The
- result is always one or more full copies of the
- source. Copying a row to a row yields a row.
- Copying a column to a column yields a column.
- Copying a range to anything yields a range. Copy-
- ing a row to a column or a column to a row yields a
- range with as many copies of the source as there
- are cells in the destination. This command can be
- used to duplicate a cell through an arbitrary range
- by making the source a single cell range such as
- _✓b_✓2_✓0_✓:_✓b_✓2_✓0.
-
-
-
-
- 6
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- The Source Range must be defined before selecting
- this command. You will be prompted to enter a des-
- tination range.
-
- _✓B_✓U_✓G_✓: You MUST enter a range, and the range WILL be
- copied. If you want to abort this operation the
- only current solution is to select your source
- range to also be your destination range. Then
- there will be a net effect of zero. This should be
- addressed in the next release.
-
- _✓E_✓r_✓a_✓s_✓e Clear a range. Cells cleared with this command may
- be recalled with the ``Yank'' or ``Merge'' commands
- under the Row or Column menus. (This is, of
- course, less than ideal - this awkwardness is an
- example of some of the problems that arose in con-
- verting from ``sc''.)
-
- _✓N_✓a_✓m_✓e Invoke the Name sub-menu.
-
- _✓L_✓o_✓c_✓k This command will lock the current cell -- or a
- range of cells, if a range of cells is specified.
- Locking will make them immune to any type of edit-
- ing. A locked cell can't be changed in anyway until
- it is unlocked.
-
- _✓U_✓n_✓L_✓o_✓c_✓k In light of the previous command, the necessity of
- this command is obvious. This command will unlock
- a locked cell and make it editable.
-
- _✓F_✓o_✓r_✓m_✓a_✓t Use this command to assign a value format string to
- a range of cells. See the section ``Formatting
- Cell Contents'' for details.
-
- _✓F_✓i_✓l_✓l Fill a range with constant values starting with a
- given value and increasing by a given increment.
- Each row is filled before moving on to the next
- row, if row order recalculation is set. Column
- order fills each column in the range before moving
- on to the next column. The start and increment
- numbers may be positive or negative. To fill all
- cells with the same value, give an increment of
- zero.
-
- _✓E_✓x_✓a_✓m_✓p_✓l_✓e_✓: A Starting value and Increment of "2 5"
- (2 is the starting value, 5 is the increment) will
- result in the defined range being filled with the
- values 2 7 12 17 22 27 ...
-
- A Range must be defined before choosing this com-
- mand or it will abort. (Filling a single cell is
- rather a silly thing to do).
-
-
-
-
-
- 7
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- _✓V_✓a_✓l_✓u_✓e_✓i_✓z_✓e
- Values only. This command removes the expressions
- from a range of cells, leaving just the values of
- the expressions.
-
- _✓E_✓x_✓a_✓m_✓p_✓l_✓e_✓: A cell contains a function which currently
- evaluates to 12. Valueizing that cell would result
- in the function being removed, and the constant
- value 12 being inserted into the cell.
-
- _✓B_✓U_✓G_✓: ``Valueize'' is almost certainly not a real
- word.
-
- The Copy and Erase parts of this section are rather klunky
- & kludgy. It needs work. One hoped for improvement is to
- re-do this section into a more Macintosh-like setup, with
- a CUT/COPY/PASTE type of interface. Hopefully this sec-
- tion will be cleaned up in the next release.
-
- C✓Ce✓el✓ll✓l S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- G✓G:Goto M✓M:Mark C✓C:Copy marked cell L✓L:edit Label V✓V:edit Value
-
- This menu deals with operations that affect the current
- cell only. All of these menu items have direct Control-
- or Function-Key equivalents. I suspect that the direct
- keyboard equivalents will prove to be more used than this
- menu. In which case, this menu may disappear with the
- next release.
-
- _✓G_✓o_✓t_✓o Go to a cell. _✓s_✓s prompts for a cell's name, a reg-
- ular expression surrounded by quotes, or a number.
-
- If a cell's name such as ``ae122 '' or the name of
- a defined range is given, the cell cursor goes
- directly to that cell. If a quoted regular expres-
- sion such as "Tax Table" or "^Jan [0-9]*$" is
- given, _✓s_✓s searches for a cell containing a string
- matching the regular expression. Note that you
- must use double quotes (") around a regular expres-
- sion. See _✓r_✓e_✓g_✓e_✓x_✓(_✓3_✓) or _✓e_✓d_✓(_✓1_✓) for more details on
- the form of regular expressions.
-
- If a number is given, _✓s_✓s will search for a cell
- containing that number. Searches for either
- strings or numbers proceed forward from the current
- cell, wrapping back to a0 at the end of the table,
- and terminate at the current cell if the string or
- number is not found.
-
- You may also go to a cell with an ERROR (divide by
- zero, etc in this cell) or INVALID (references a
- cell containing an ERROR). Entering ``error'' (No
- quotes! Case unimportant) will take you to the
- next ERROR, while ``invalid'' takes you to the next
-
-
-
- 8
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- invalid.
-
- The last goto command is saved, and can be re-
- issued by entering <return> at the Goto prompt.
-
- _✓M_✓a_✓r_✓k Mark a cell to be used as the source for the ``Copy
- Marked Cell'' command.
-
- _✓C_✓o_✓p_✓y _✓M_✓a_✓r_✓k_✓e_✓d _✓C_✓e_✓l_✓l
- Copy the last cell marked with the ``Mark'' command
- to the current cell, updating row and column refer-
- ences in its numeric or string expression, if any.
-
- _✓E_✓d_✓i_✓t _✓L_✓a_✓b_✓e_✓l
-
- _✓E_✓d_✓i_✓t _✓V_✓a_✓l_✓u_✓e
- Edit the string (value) associated with the current
- cell. A subset of ``emacs'' commands are used in
- this mode. See ``Emacs Command/Entry Editing''
- below.
-
- R✓Ro✓ow✓w &✓& C✓Co✓ol✓lu✓um✓mn✓n S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u'✓'s✓s
- I✓I:Insert D✓D:Delete Y✓Y:Yank M✓M:Merge C✓C:Copy H✓H:Hide S✓S:Show
- V✓V:Valueize F✓F:Fmt
-
- With the exception of the ``Fmt'' item, the Row and Column
- Menus are identical. Fmt appears on the Column Menu only.
- The operations on the two menus are also identical, with
- the obvious explanation that Row menu commands operate on
- Rows, and Column menu commands operate on Columns.
-
- Commands which move or copy cells also modify the row and
- column references in affected cell expressions. The ref-
- erences may be frozen by using the _✓f_✓i_✓x_✓e_✓d operator or using
- the _✓$ character in the reference to the cell. (See the
- section below: ``WORKING WITH SS'' - subsection ``Variable
- Names'')
-
- _✓I_✓n_✓s_✓e_✓r_✓t Insert some Rows or Columns. If a range is
- defined, insert the number of rows (columns)
- spanned by the range. If no range is defined,
- insert just one row (column). The new row (column)
- is empty.
-
- Rows (columns) will be inserted before the current
- one. In the case of a range, the `current' row
- (column) will be the top-most row (leftmost col-
- umn).
-
- _✓D_✓e_✓l_✓e_✓t_✓e Delete some Rows or Columns. If a range is
- defined, delete the rows (columns) spanned by the
- range. If no range is defined, delete just the row
- (column) where the cell cursor is.
-
-
-
-
- 9
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- _✓Y_✓a_✓n_✓k Yank back a previously deleted set of cells, making
- room for them by inserting enough rows, or columns.
- They are inserted at the current cursor location.
-
- _✓N_✓o_✓t_✓e_✓: Using the Row menu to Yank back a deleted
- Column will insert as many rows as were in the
- deleted column. The same is true of using the Col-
- umn menu to yank back a deleted Row. These ``Fea-
- tures'' are probably bugs.
-
- _✓B_✓u_✓g_✓: (Feature?) This operation will also yank back
- cells erased with the ``Erase'' command on the Edit
- menu. In most of those cases though, you will
- probably want to use the Merge command to do that.
-
- _✓M_✓e_✓r_✓g_✓e This command also yanks back previously deleted
- cells. However, it does NOT insert rows or columns
- to make room for the yanked back material. The
- present contents of any cells (beginning at the
- current cell cursor location) will be overwritten.
-
- Unlike the yank command, a merged-back column will
- start at the current cell cursor location, it will
- NOT start in row 0. The same is true of merged-
- back rows.
-
- This command is the same, whether you select it
- through the Row menu or the Column menu.
-
- This operation will also yank back cells erased
- with the ``Erase'' command on the Edit menu.
-
- _✓N_✓o_✓t_✓e_✓: This command really belongs on the Edit menu.
- However, it is temporarily staying here, to be by
- the Yank command, to which it is a ``partner''.
-
- _✓C_✓o_✓p_✓y Make a copy (actually, a duplicate) of the current
- row (column), and insert it into the spreadsheet to
- the right (below) of the current row (column).
-
- This command operates on only one row (column) at a
- time. Any defined range is ignored.
-
- _✓H_✓i_✓d_✓e Hide some rows (columns). If a range is defined,
- hide the number of rows (columns) spanned by the
- range. If no range is defined, hide just the cur-
- rent row (column).
-
- This keeps a row (column) from being displayed but
- keeps it in the spreadsheet. The status of the
- rows and columns is saved with the sheet so hidden
- rows and columns will be still be hidden when you
- reload the spreadsheet. Hidden rows or columns are
- not printed by the ``Write Txt'' command.
-
-
-
- 10
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- _✓S_✓h_✓o_✓w Show Hidden Row's (Columns). Shows the first hid-
- den row(s) (columns) in the spreadsheet, starting
- at the top (left).
-
- _✓V_✓a_✓l_✓u_✓e_✓i_✓z_✓e
- Valueize some rows (columns). If a range is
- defined, Valueize the number of rows (columns)
- spanned by the range. If no range is defined, val-
- ueize just the current row (column).
-
- See the section on ``Valueize'' under the Edit Menu
- (above) for more information.
-
- _✓F_✓m_✓t _✓(_✓F_✓o_✓r_✓m_✓a_✓t_✓)
- This option appears on the Column menu only.
-
- Format the current column. (This is primarily use-
- ful for adjusting the column width.) There seems
- to be some overlap here between this function and
- the format function in the edit menu. (as you
- might have guessed, this function is a holdover
- from ``sc'' that I have not explored in any great
- depth.) SHOULD BE FIXED UP.
-
- _✓(_✓H_✓e_✓r_✓e_✓'_✓s _✓t_✓h_✓e _✓`_✓`_✓s_✓c_✓'_✓' _✓d_✓e_✓f_✓i_✓n_✓i_✓t_✓i_✓o_✓n_✓: Set the output for-
- mat to be used for printing the numeric values in
- each cell in the current column. Enter three num-
- bers: the total width in characters of the column,
- the number of digits to follow decimal points, and
- the format type. Format types are 0 for fixed
- point, 1 for scientific notation, 2 for engineering
- notation, and 3 for dates. Values are rounded off
- to the least significant digit displayed. )
-
- V✓Vi✓ie✓ew✓w S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- C✓C:Cell hiliting T✓T:Top line disp. V✓V:show Values E✓E:show
- Expr. R✓R:Recalc
-
- The View menu contains operations that affect the users
- view of the spreadsheet.
-
- _✓C_✓e_✓l_✓l _✓h_✓i_✓l_✓i_✓t_✓i_✓n_✓g
- Enable/Disable Current cell highlighting. If
- enabled, the current cell is highlighted (using the
- terminal's standout mode, if available) in addition
- to being marked by the cell cursor. (DEFAULT: cell
- highlighting on)
-
- _✓T_✓o_✓p _✓l_✓i_✓n_✓e _✓d_✓i_✓s_✓p_✓l_✓a_✓y
- Enable/Disable top line display of the current
- cell's contents. If enabled, the name and value of
- the current cell is displayed on the top line. If
- there is an associated label string, the first
- character of the string value is ``|'' for a
-
-
-
- 11
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- centered string, ``<'' for a leftstring or ``>''
- for a rightstring (see below), followed by "_✓s_✓t_✓r_✓i_✓n_✓g"
- for a constant string or {_✓e_✓x_✓p_✓r} for a string
- expression. A constant string may be preceded with
- a backslash (`\'). In this case the constant
- string will be used as a ``wheel'' to fill a col-
- umn, e.g. "\-" for a line in a column, and "\Yeh "
- for "Yeh Yeh Ye". If the cell has a numeric value,
- it follows as [_✓v_✓a_✓l_✓u_✓e], which may be a constant or
- expression. (DEFAULT: top line display enabled)
-
- _✓S_✓h_✓o_✓w _✓V_✓a_✓l_✓u_✓e_✓s
- Redraw the screen, highlighting all cells to be
- filled in. This is useful for finding values you
- need to provide or update in a form with which you
- aren't familiar or of which you have forgotten the
- details.
-
- It's also useful for checking a form you are creat-
- ing. All cells which contain constant numeric val-
- ues (not the result of a numeric expression) are
- highlighted temporarily, until the next screen
- change, however minor. To avoid ambiguity, the
- current range (if any) and current cell are not
- highlighted.
-
- _✓S_✓h_✓o_✓w _✓E_✓x_✓p_✓r_✓e_✓s_✓s_✓i_✓o_✓n_✓s
- This command is similar to _✓S_✓h_✓o_✓w _✓V_✓a_✓l_✓u_✓e_✓s, but high-
- lights cells which have expressions. It also dis-
- plays the expressions in the highlighted cells as
- left-flushed strings, instead of the numeric values
- and/or label strings of those cells. This command
- makes it easier to check expressions, at least when
- they fit in their cells or the following cell(s)
- are blank so the expressions can overflow (like
- label strings). In the latter case, the overflow
- is not cleared on the next screen update, so you
- may want redraw the screen (via _✓^_✓L) after this com-
- mand in order to clean up the screen.
-
- _✓R_✓e_✓c_✓a_✓l_✓c Recalculates the spreadsheet. (This is likely only
- useful if automatic recalculation is disabled. See
- the ``Input Sub-Menu'' below)
-
- I✓In✓np✓pu✓ut✓t S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- A✓A:Auto L✓L:Label R✓R:Rounding N✓N:Newline action Z✓Z:Limits C✓C:Cr
- terminate P✓P:Pre-scale M✓M:Macro The Input menu contains
- operations that control Input to the Spreadsheet.
-
- _✓A_✓u_✓t_✓o Enable/Disable automatic recalculation of the
- spreadsheet. When set, each change in the spread-
- sheet causes the entire spreadsheet be recalcu-
- lated. Normally this is not noticeable, but for
- very large spreadsheets, it may be faster to clear
-
-
-
- 12
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- automatic recalculation mode and update the spread-
- sheet via explicit requests to recalculate the
- spreadsheet. (DEFAULT: automatic recalculation on)
-
- _✓L_✓a_✓b_✓e_✓l Enable/Disable automatic labeling of named ranges.
- If enabled, using the Define command (on the Name
- sub-menu) causes a label to be automatically gener-
- ated in the cell to the left of the defined cell.
- This is only done if the cell to the left is empty.
- (DEFAULT: autolabeling enabled)
-
- _✓R_✓o_✓u_✓n_✓d_✓i_✓n_✓g
- Selecting this menu item causes the spreadsheet to
- toggle between round-to-even (Also knowns as
- Banker's Round, the default) and round-to-infinity.
- In round-to-even, *.5 will round to the closest
- even number. Under round-to-infinity, *.5 will
- round up to the next integer.
-
- _✓N_✓e_✓w_✓l_✓i_✓n_✓e _✓A_✓c_✓t_✓i_✓o_✓n
- After each command which is terminated by a newline
- character is completed, one of three actions will
- occur:
-
- 1) No action (Default).
- 2) Move down one row.
- 3) Move right one column.
- 4) Move in the same direction
- as the last Arrow key took us.
-
- This option toggles between those four actions.
-
- _✓L_✓i_✓m_✓i_✓t_✓s Set newline action limits. This option sets limits
- to the newline action option above. When this
- option is invoked, the row and column of the cur-
- rent cell are remembered. If a later newline
- action would take the current cell to the right of
- the remembered column, then the current cell is
- instead moved to the first column of the next row.
- If a newline action would take the current cell
- below the remembered row, then the current cell is
- instead moved to the top row of the next column.
-
- The ``newline action'' and ``set newline action limits''
- options can be combined to allow very quick entry of large
- amounts of data. If all the data to be entered is in a
- single row or column then setting the appropriate newline
- action will allow the numbers to be entered without any
- explicit commands to position the current cell.
-
- If the data entry involves several entries in each row for
- many rows, then setting the quick numeric entry option,
- setting the newline action to move right after each entry
- and setting the newline action limits on the last column
-
-
-
- 13
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- on which data should be entered will allow the data to
- entered quickly. If necessary, columns which do not need
- data to be entered can be hidden. Similar arrangements
- can be made for entering several rows of data in each col-
- umn.
-
- _✓C_✓R _✓T_✓e_✓r_✓m_✓i_✓n_✓a_✓t_✓e
- By default, when entering data into a cell, you can
- terminate data entry by using the Return key, or by
- using one of the 4 arrow keys. (See the section
- below on ENTERING DATA) This menu item toggles
- between the default method of data entry and CR-
- terminate data entry. In CR-terminated mode, data
- entry can only be terminated by the return key.
- This let's you use the Left/Right arrow keys to
- edit the data as you enter it.
-
- BUG: The setting of this flag is NOT saved in the
- data file between runs of the program.
-
- _✓P_✓r_✓e_✓-_✓S_✓c_✓a_✓l_✓e
- Dollar prescale. If enabled, all numeric constants
- (not expressions) which you enter are multiplied by
- 0.01 so you don't have to keep typing the decimal
- point if you enter lots of dollar figures.
-
- _✓M_✓a_✓c_✓r_✓o Invoke the Macro Sub-Menu.
-
- M✓Mi✓is✓sc✓c S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- !✓!:Shell Cmd E✓E:Ext fn's I✓I:Iterations R✓R:Recalc Order T✓T:Table
- Sty X✓X:Encrypt
-
- _✓S_✓h_✓e_✓l_✓l _✓C_✓o_✓m_✓m_✓a_✓n_✓d
- _✓s_✓s prompts for a shell command to run. End the
- command line with the <RETURN> key. If the envi-
- ronment variable SHELL is defined, that shell is
- run. If not, /bin/sh is used. Giving a null com-
- mand line starts the shell in interactive mode. A
- second ``!'' repeats the previous shell command.
-
- _✓E_✓x_✓t _✓F_✓n_✓'_✓s
- External function execution. When disabled, exter-
- nal functions (see _✓@_✓e_✓x_✓t() below) are not called.
- This saves a lot of time at each screen update. If
- disabled, and external functions are used anywhere,
- a warning is printed each time the screen is
- updated, and the result of _✓@_✓e_✓x_✓t() is the value from
- the previous call, if any, or a null string.
- (DEFAULT: external function execution disabled)
-
- _✓I_✓t_✓e_✓r_✓a_✓t_✓i_✓o_✓n_✓s
- Set the maximum number of recalculations before the
- screen is displayed again. Iterations is set to 10
- by default.
-
-
-
- 14
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- _✓R_✓e_✓c_✓a_✓l_✓c _✓O_✓r_✓d_✓e_✓r
- Specify the order of cell evaluation when updating.
- This options toggles between column-wise and row-
- wise (the default) spreadsheet recalculation.
-
- _✓T_✓a_✓b_✓l_✓e _✓S_✓t_✓y_✓l_✓e
- Invoke the Table Style Sub-Menu.
-
- _✓E_✓n_✓c_✓r_✓y_✓p_✓t
- Turn encryption of files on/off.
-
- NOTE: Encryption may not be available at your
- sight. See the ``-x'' item under O✓OP✓PT✓TI✓IO✓ON✓NS✓S above for
- further details.
-
- M✓Ma✓ac✓cr✓ro✓o S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- R✓R:Run D✓D:Define
-
- _✓R_✓u_✓n (Run macros) Since _✓s_✓s files are saved as ASCII
- files, it is possible to use them as primitive
- macro definition files. The ``Run'' command makes
- this easier. It's like the ``File/Merge'' command,
- but prints a saved path name as the start of the
- filename to merge in. The string to use is set
- with the ``Define'' command. To write macros, you
- must be familiar with the file format written by
- the ``File/Save'' commands. T✓Th✓hi✓is✓s f✓fa✓ac✓ci✓il✓li✓it✓ty✓y i✓is✓s s✓st✓ti✓il✓ll✓l
- p✓pr✓ri✓im✓mi✓it✓ti✓iv✓ve✓e a✓an✓nd✓d c✓co✓ou✓ul✓ld✓d b✓be✓e m✓mu✓uc✓ch✓h i✓im✓mp✓pr✓ro✓ov✓ve✓ed✓d.✓.
-
- D✓Di✓is✓sc✓cl✓la✓ai✓im✓me✓er✓r:✓: This code was lifted virtually
- unchanged from `sc'. I don't use it, haven't
- explored it, and therefore don't understand it.
- (Art Mulder)
-
- _✓D_✓e_✓f_✓i_✓n_✓e Define a path for the ``Run'' command to use.
-
- N✓Na✓am✓me✓e S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- D✓D:Define Name E✓E:Erase Name S✓S:Show Names
-
- This menu is invoked from the Edit menu.
-
- _✓D_✓e_✓f_✓i_✓n_✓e _✓N_✓a_✓m_✓e
- Define a Name for a range of cells. If no range is
- currently defined, then define a name for the cur-
- rent cell.
-
- Names defined in this fashion are used by the pro-
- gram in future prompts, may be entered in response
- to prompts requesting a cell or range name, and are
- saved when the spreadsheet is saved. Names defined
- must be more than two alpha characters long to dif-
- ferentiate them from a column names, and must not
- have embedded special characters. Names may
- include the character ``_'' or numerals as long as
-
-
-
- 15
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- they occur after the first three alpha characters.
-
- _✓E_✓r_✓a_✓s_✓e _✓N_✓a_✓m_✓e
- Erase the name assigned to a range of cells. If no
- range is currently defined, then prompt for a cell
- name to erase.
-
- _✓S_✓h_✓o_✓w _✓N_✓a_✓m_✓e_✓s
- List all Names that have been assigned to cells, or
- ranges of cells. Pipe the output to 'sort' and
- then to a pager. Therefore the list of names is
- sorted, and it will not run off the top of your
- display. If the environment variable PAGER is set,
- its value is used as your pager, otherwise a (sytem
- dependent) default pager is used.
-
- T✓Ta✓ab✓bl✓le✓e S✓St✓ty✓yl✓le✓e S✓Su✓ub✓b-✓-M✓Me✓en✓nu✓u
- N✓N:None T✓T:Tbl X✓X:TeX L✓L:LaTeX S✓S:sLaTeX F✓F:Frame
-
- This menu is invoked from the Misc menu.
-
- The Table Style menu controls which delimeters are used to
- separate the data when a text-only listing of the current
- spreadsheet is out via the _✓T_✓a_✓b_✓l_✓e _✓S_✓a_✓v_✓e option on the File
- menu. The possible choices are: N✓No✓on✓ne✓e (also shown as style
- 0✓0) to give plain colon delimited fields; t✓tb✓bl✓l to give colon
- delimited fields, with _✓t_✓b_✓l(1) control lines; T✓Te✓eX✓X, L✓La✓aT✓Te✓eX✓X,
- s✓sL✓La✓aT✓Te✓eX✓X, to give appropriate delimeters for those environ-
- ments (SLaTeX = Scandinavian LaTeX) consisting of simple
- tabbed alignment with ampersands as delimiters; and F✓Fr✓ra✓am✓me✓e
- to produce a file suitable for reading into _✓F_✓r_✓a_✓m_✓e_✓M_✓a_✓k_✓e_✓r.
-
- C✓CO✓OM✓MM✓MA✓AN✓ND✓DS✓S
- A number of commands are accessible directly from the key-
- board, via Control-keys, or Function-keys. These are pri-
- marily cursor movement commands (ie: up-arrow key, etc),
- but there are also a small number of control-keys which
- access other functions.
-
- _✓N_✓O_✓T_✓E_✓: In the following ``^✓^'' indicates the use of the Con-
- trol key. Hence, ^✓^A✓A means ``Hold down the Control key,
- while typing the `A' key''. Also, <✓< >✓> are used to iden-
- tify ``named'' keys. So, <✓<D✓De✓el✓le✓et✓te✓e>✓> stands for the Delete
- Key.
-
- There are also a few commands that are invoked by two
- keystrokes in succession. For example, `` ^X v '' means
- ``Type Control-X, then v'' (Case is unimportant, V or v is
- fine). Also, ``<Esc> v'' means ``Type <Esc>, then v''.
- In some cases, there exists more than one command sequence
- for the same thing. (Like ^B and <Left Arrow>). Both
- commands are then listed together, separated by a comma.
-
-
-
-
-
- 16
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- C✓Cu✓ur✓rs✓so✓or✓r M✓Mo✓ov✓ve✓em✓me✓en✓nt✓t
- These key sequences all move the cell cursor. When possi-
- ble, I strove to use the same control-key sequences as the
- emacs text editor - no point in reinventing the wheel!
-
- Moving Short Distances:
-
- ^✓^B✓B,✓, <✓<L✓Le✓ef✓ft✓t A✓Ar✓rr✓ro✓ow✓w>✓> Move left one cell.
-
- ^✓^F✓F,✓, <✓<R✓Ri✓ig✓gh✓ht✓t A✓Ar✓rr✓ro✓ow✓w>✓> Move right one cell.
-
- ^✓^P✓P,✓, <✓<U✓Up✓p A✓Ar✓rr✓ro✓ow✓w>✓> Move up one cell.
-
- ^✓^N✓N,✓, <✓<D✓Do✓ow✓wn✓n A✓Ar✓rr✓ro✓ow✓w>✓> Move down one cell.
-
- Moving Longer Distances:
-
- <✓<E✓Es✓sc✓c>✓> <✓<,✓, <✓<H✓Ho✓om✓me✓e>✓>
- Jump to cell A0.
-
- <✓<E✓Es✓sc✓c>✓> >✓>,✓, <✓<E✓En✓nd✓d>✓>
- Jump to the last row of the current column.
-
- ^✓^T✓T Jump to row 0 of the current column.
-
- ^✓^A✓A Jump to the first cell in the current row
- (Column A).
-
- ^✓^E✓E Jump to the last valid cell in the current
- row.
-
- <✓<E✓Es✓sc✓c>✓> v✓v,✓, <✓<P✓Pg✓gU✓Up✓p>✓>
- Jump a (half) page up.
-
- ^✓^V✓V,✓, <✓<P✓Pg✓gD✓Dn✓n>✓>
- Jump a (half) page down.
-
- ^✓^X✓X <✓<,✓, <✓<S✓Sh✓hi✓if✓ft✓t>✓><✓<L✓Le✓ef✓ft✓t A✓Ar✓rr✓ro✓ow✓w>✓>
- Jump a (half) page left.
-
- ^✓^X✓X >✓>,✓, <✓<S✓Sh✓hi✓if✓ft✓t>✓><✓<R✓Ri✓ig✓gh✓ht✓t A✓Ar✓rr✓ro✓ow✓w>✓>
- Jump a (half) page right.
-
- Special Movement:
-
- <✓<E✓Es✓sc✓c>✓> b✓b Move the cursor backward to the previous valid
- cell.
-
- <✓<E✓Es✓sc✓c>✓> f✓f Move the cell cursor forward to the next valid
- cell. These two commands do not ``wrap
- around'' when the end of the spreadsheet is
- encountered.
-
- ^✓^J✓J Jump the cursor to the end of a (user-
-
-
-
- 17
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- specified) range. The user is prompted for a
- direction (Any of the Up,Down,Left,Right com-
- mands above), and the cell cursor is then
- jumped to the last valid cell in that direc-
- tion.
-
- The user can enter a <Space> or <Return> to
- abort this procedure.
-
- M✓Me✓en✓nu✓u S✓Sh✓ho✓or✓rt✓t-✓-C✓Cu✓ut✓ts✓s
- These commands all duplicate functions that are also
- available through menu's. They exist here because I felt
- that they would be used often enough to warrant a quicker
- access to their functionality.
-
- Cell Menu Short-Cuts:
-
- ^✓^G✓G Goto a Cell. See ``Goto'' on the Cell Menu.
-
- ^✓^W✓W Mark a Cell for later copying. See ``Mark''.
-
- ^✓^Y✓Y Copy a previously marked cell to the current
- cell. See ``Copy''.
-
- ^✓^X✓X V✓V Edit the Value of the Current Cell. See ``edit
- Value''.
-
- ^✓^X✓X L✓L Edit the Label of the Current Cell. See ``edit
- Label''.
-
- Edit Menu Short-Cuts:
-
- <✓<D✓De✓el✓l>✓>,✓, <✓<B✓Ba✓ac✓ck✓kS✓Sp✓pa✓ac✓ce✓e>✓>,✓, ^✓^D✓D
- Erase the contents (Label and Value) of the cur-
- rent cell. This is similar to choosing the
- ``Erase'' item on the Edit Menu with no range
- defined, and therefore the ``Yank'' and ``Merge''
- commands on the Row & Column menus will undo this
- deletion. See the relevant sections of this man
- page for more details.
-
- Misc Menu Short-Cuts:
-
- ^✓^L✓L Redraw the screen. (This isn't a menu shortcut,
- but it does belong with the next two commands).
-
- ^✓^R✓R Redraw the Screen and Highlight all Values. See
- ``Show Values''
-
- ^✓^K✓K Redraw the Screen and Highlight all Expressions.
- See ``Show Expr''
-
- O✓Ot✓th✓he✓er✓r C✓Co✓om✓mm✓ma✓an✓nd✓ds✓s
- These commands do not fit into either of the the two
-
-
-
- 18
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- previous categories, so they are dumped here into that
- wonderful category known as ``Miscellaneous''.
-
- <✓<T✓Ta✓ab✓b>✓> Toggle Range display/definition mode. See the
- section below on R✓RA✓AN✓NG✓GE✓ES✓S
-
- <✓<R✓Re✓et✓tu✓ur✓rn✓n>✓> (or ^M) The cell-cursor is moved in one of a
- number of directions. See ``/ Misc - Options -
- Return''.
-
- ^✓^Z✓Z Stop. On systems where this is possible, the
- program is stopped, and control is given to the
- shell.
-
- E✓EN✓NT✓TE✓ER✓RI✓IN✓NG✓G D✓DA✓AT✓TA✓A (✓(E✓Em✓ma✓ac✓cs✓s C✓Co✓om✓mm✓ma✓an✓nd✓d/✓/E✓En✓nt✓tr✓ry✓y E✓Ed✓di✓it✓ti✓in✓ng✓g)✓)
- _✓s_✓s frequently prompts the user to enter a line of data on
- the top line of the display. When entering such data, a
- number of Emacs-compatible commands are supported for the
- editing of the data as it is entered.
-
- There are two kinds of these data input modes. In the
- general case, (Cursor Terminated), the user is simply
- entering a number, function, or label into the spreadsheet
- (See ``How Input Is Processed'' above). In that general
- case, input is terminated with a <Return> or with an arrow
- key (or ^N, ^P, ^F, ^B). When input is ended with an
- arrow key, the cell cursor is then moved in that direc-
- tion. (This sounds confusing, but really it isn't.)
-
- In the other case, (<CR> Terminated), the user is either
- editing the contents of a cell (through one of the cell
- editing commands discussed above), or is entering input in
- response to a question from the program. (For example:
- Enter the name of a filename to load). In this case, only
- a <CR> is accepted as terminating input.
-
- I✓In✓np✓pu✓ut✓t E✓Ed✓di✓it✓ti✓in✓ng✓g C✓Co✓om✓mm✓ma✓an✓nd✓ds✓s:✓:
- ^✓^A✓A Move the cursor to the beginning of the line
-
- ^✓^B✓B,✓, <✓<L✓Le✓ef✓ft✓t A✓Ar✓rr✓ro✓ow✓w>✓>
- Move the cursor left. This command obviously does
- not apply to the ``Cursor Terminated'' mode.
-
- ^✓^G✓G Abort input. If you are editing a cell, this com-
- mand will abort the operation and leave the cells
- contents unchanged.
-
- ^✓^D✓D Delete the character ``under'' cursor.
-
- ^✓^E✓E Move to the end of the line.
-
- ^✓^F✓F,✓, <✓<R✓Ri✓ig✓gh✓ht✓t A✓Ar✓rr✓ro✓ow✓w>✓>
- Move the cursor right. This command obviously does
- not apply to the ``Cursor Terminated'' mode.
-
-
-
- 19
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- ^✓^H✓H,✓, <✓<D✓De✓el✓l>✓>
- Delete the character to the left of cursor.
-
- ^✓^K✓K Kill from the cursor to the end of the line.
-
- ^✓^L✓L Redraw the line.
-
- ^✓^M✓M,✓, <✓<R✓Re✓et✓tu✓ur✓rn✓n>✓>
- Terminate input.
-
- ^✓^O✓O Toggle Overwrite (versus insert) mode. In Over-
- write, text to the right of the cursor is overwrit-
- ten instead of ``pushed'' right.
-
- ^✓^T✓T Transpose the character to the left of the cursor,
- with the character ``under'' the cursor.
-
- ^✓^Y✓Y At the current cursor location, Yank back text
- killed with ^K.
-
- F✓FO✓OR✓RM✓MA✓AT✓TT✓TI✓IN✓NG✓G C✓CE✓EL✓LL✓L C✓CO✓ON✓NT✓TE✓EN✓NT✓TS✓S
- The following characters can be used in building a format
- string:
-
- #✓# Digit placeholder. If the number has fewer
- digits on either side of the decimal point
- than there are `#' characters in the format,
- the extra `#' characters are ignored. The
- displayed number is rounded to the number of
- digit placeholders as are found to the right
- of the decimal point. If there are more
- digits in the number than there are digit
- placeholders on the left side of the decimal
- point, then those digits are displayed.
-
- 0✓0 Digit placeholder. Same as for `#' except
- that the number is padded with zeroes on
- either side of the decimal point. The num-
- ber of zeroes used in padding is determined
- by the number of digit placeholders after
- the `0' for digits on the left side of the
- decimal point and by the number of digit
- placeholders before the `0' for digits on
- the right side of the decimal point.
-
- .✓. Decimal point. Determines how many digits
- are placed on the right and left sides of
- the decimal point in the number. Note that
- numbers smaller than 1 will begin with a
- decimal point if the left side of the deci-
- mal point contains only a `#' digit place-
- holder. Use a `0' placeholder to get a
- leading zero in decimal formats.
-
-
-
-
- 20
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- %✓% Percentage. For each `%' character in the
- format, the actual number gets multiplied by
- 100 (only for purposes of formatting - the
- original number is left unmodified) and the
- `%' character is placed in the same position
- as it is in the format.
-
- ,✓, Thousands separator (comma). The presence
- of a `,' in the format (multiple commas are
- treated as one) will cause the number to be
- formatted with a `,' separating each set of
- three digits in the integer part of the num-
- ber with numbering beginning from the right
- end of the integer.
-
- \✓\ Quote. This character causes the next char-
- acter to be inserted into the formatted
- string directly with no special interpreta-
- tion.
-
- E✓E-✓- E✓E+✓+ e✓e-✓- e✓e+✓+
- Scientific format. Causes the number to
- formatted in scientific notation. The case
- of the `E' or `e' given is preserved. If
- the format uses a `+', then the sign is
- always given for the exponent value. If the
- format uses a `-', then the sign is only
- given when the exponent value is negative.
- Note that if there is no digit placeholder
- following the `+' or `-', then that part of
- the formatted number is left out. In gen-
- eral, there should be one or more digit
- placeholders after the `+' or `-'.
-
- ;✓; Format selector. Use this character to sep-
- arate the format into two distinct formats.
- The format to the left of the `;' character
- will be used if the number given is zero or
- positive. The format to the right of the
- `;' character is used if the number given is
- negative.
-
- Some example formats:
- Integer ``0'' or ``#''
- Fixed ``0.00''
- Percentage ``0%'' or ``0.00%''
- Scientific ``0.00E+00''
- Currency ``$#,0.00;($#,0.00)''
-
- W✓WO✓OR✓RK✓KI✓IN✓NG✓G W✓WI✓IT✓TH✓H R✓RA✓AN✓NG✓GE✓ES✓S
- A Range is defined as being some rectangular block of
- cells. A range is identified by the cells in the top
- right and bottom left corners of the block. For example,
- the range C3:F5 refers to the rectangular block of cells:
-
-
-
- 21
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- C3 D3 E3 F3
- C4 D4 E4 F4
- C5 D5 E5 F5
-
- A number of commands operate upon ranges. Most of those
- commands will also function without a range, in that case
- there is some default effect. For example, the ``/-File-
- Save'' command will save the entire spreadsheet by
- default. If a range of cells is defined, then that com-
- mand will instead just save the defined range of cells.
- In contrast, the ``/-Edit-Erase'' command will by default
- just erase the cell at the current cursor location. If a
- range is defined, it will erase the entire range of cells.
-
- _✓S_✓S endeavours to follow the ``Select then execute'' phi-
- losophy, much like mouse-oriented systems do. For exam-
- ple, instead of choosing the erase command, and then
- entering a range of cells to be erase, you first select a
- range of cells, and then choose the erase command.
-
- To start defining a range, use the <Tab> key. Then, use
- any of the cursor motion keys (arrow keys, PgDn, etc) to
- move your cursor. All cells making up the rectangular
- region between the current cell, and the cell where you
- first typed the <Tab> key, will be highlighted, indicating
- the range of cells you are defining.
-
- Once you have highlighted the desired range of cells, sim-
- ply use the menu commands, as always, to choose an opera-
- tion to perform upon the range you have defined. See the
- above section on MENUS to find out which commands also
- apply to ranges.
-
- If, for some reason, you decide that you don't want to do
- anything with the range you have defined, you can type the
- <Tab> key a second time to discontinue defining a range.
- The highlighted section will then be returned to normal
- video, and you will no longer have a range defined.
-
-
- W✓WO✓OR✓RK✓KI✓IN✓NG✓G W✓WI✓IT✓TH✓H S✓SS✓S
- S✓Sp✓pr✓re✓ea✓ad✓ds✓sh✓he✓ee✓et✓t U✓Up✓pd✓da✓at✓te✓e
- Re-evaluation of spreadsheet expressions is done by row or
- by column depending on the selected calculation order.
- Evaluation is repeated up to _✓i_✓t_✓e_✓r_✓a_✓t_✓i_✓o_✓n_✓s times for each
- update if necessary, so forward references usually work as
- expected. If stability has not been reached after all
- those repeated evaluating of the spreadsheet expressions,
- a warning is printed. This is usually due to a long
- series of forward references, or to unstable cyclic refer-
- ences (for example, set _✓A_✓0's expression to ``A0+1'').
-
- See ``Recalc Order'' under the Misc Menu above for how to
- choose row or column evalution order, and ``Iterations''
-
-
-
- 22
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- for how to change the value of _✓i_✓t_✓e_✓r_✓a_✓t_✓i_✓o_✓n_✓s_✓.
-
- A✓Ab✓bo✓ou✓ut✓t C✓Ce✓el✓ll✓ls✓s
- Cells can contain both a numeric value and a string value.
- Either value can be the result of an expression, but not
- both at once, i.e. each cell can have only one expression
- associated with it. Entering a valid numeric expression
- alters the cell's previous numeric value, if any, and
- replaces the cell's previous string expression, if any,
- leaving only the previously computed constant label
- string. Likewise, entering a valid string expression
- alters the cell's the previous label string, if any, and
- replaces the cell's previous numeric expression, if any,
- leaving only the previously computed constant numeric
- value.
-
- V✓Va✓ar✓ri✓ia✓ab✓bl✓le✓e N✓Na✓am✓me✓es✓s
- Normally, a variable name is just the name of a cell, such
- as _✓K_✓2_✓0. The value is the numeric or string value of the
- cell, according to context.
-
- When a cell's expression (formula) is copied to another
- location via _✓c_✓o_✓p_✓y or _✓r_✓a_✓n_✓g_✓e_✓-_✓c_✓o_✓p_✓y, variable references are
- by default offset by the amount the formula moved. This
- allows the new formula to work on new data. If cell ref-
- erences are not to change, you can either use the _✓f_✓i_✓x_✓e_✓d
- operator (see example below), or one of the following
- variations on the cell name.
-
- _✓K_✓2_✓0 References cell _✓K_✓2_✓0; the reference changes when the
- formula is copied.
-
- $✓$_✓K$✓$_✓2_✓0 Always refers to cell _✓K_✓2_✓0; the reference stays
- fixed when the formula is copied.
-
- $✓$_✓K_✓2_✓0 Keeps the column fixed at column K; the row is free
- to vary.
-
- _✓K$✓$_✓2_✓0 Keeps the row fixed at row 20; the column is free
- to vary.
-
- These conventions also hold on defined ranges. Range ref-
- erences vary when formulas containing them are copied. If
- the range is defined with fixed variable references, the
- references do not change.
-
- f✓fi✓ix✓xe✓ed✓d To make a variable not change automatically when a
- cell moves, put the word _✓f_✓i_✓x_✓e_✓d in front of the ref-
- erence, for example: B1 * fixed C3.
-
- N✓Nu✓um✓me✓er✓ri✓ic✓c E✓Ex✓xp✓pr✓re✓es✓ss✓si✓io✓on✓ns✓s
- Numeric expressions have a fairly conventional syntax.
- Terms may be constants, variable names, parenthesized
- expressions, and negated terms. Ranges may be operated
-
-
-
- 23
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- upon with range functions such as sum (_✓@_✓s_✓u_✓m()) and average
- (_✓@_✓a_✓v_✓g()). Terms may be combined using binary operators.
-
- -✓-e Negation.
-
- e+✓+e Addition.
-
- e-✓-e Subtraction.
-
- e*✓*e Multiplication.
-
- e/✓/e Division.
-
- e1%✓%e2 e1 mod e2.
-
- e^✓^e Exponentiation.
-
- e<✓<e
- e<✓<=✓=e
- e=✓=e
- e!✓!=✓=e
- e>✓>=✓=e
- e>✓>e Relationals: true (1) if and only if the indicated
- relation holds, else false (0). Note that ``<='',
- ``!='', and ``>='' are converted to their ``~()''
- equivalents.
-
- ~✓~e Boolean operator NOT.
-
- e&✓&e Boolean operator AND.
-
- e|✓|e Boolean operator OR.
-
- @if(✓(e✓e,✓,e,e✓e)✓)
- e?✓?e:✓:e Conditional: If the first expression is true then
- the value of the second is returned, otherwise the
- value of the third.
- Operator precedence from highest to lowest is:
- -, ~ ^ *, / +, - <, <=, =, !=, >=, > & | ?:
- S✓St✓tr✓ri✓in✓ng✓g E✓Ex✓xp✓pr✓re✓es✓ss✓si✓io✓on✓ns✓s
- String expressions are made up of constant strings (char-
- acters surrounded by double quotation marks), variables
- (cell names, which refer to the cells's label strings or
- expressions), and string functions. Note that string
- expressions are only allowed when entering a cell's label
- string, not its numeric part. Also note that string
- expression results may be left or right flushed or cen-
- tered, according to the type of the cell's string label.
- #✓# Concatenate strings. For example, the string
- expression
- A0 # "zy dog"
- displays the string ``the lazy dog'' in the cell if
- the value of _✓A_✓0's string is ``the la''.
-
-
-
-
- 24
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- F✓FU✓UN✓NC✓CT✓TI✓IO✓ON✓NS✓S
-
- C✓Ce✓el✓ll✓l F✓Fu✓un✓nc✓ct✓ti✓io✓on✓ns✓s
- @✓@m✓my✓yr✓ro✓ow✓w,✓, @✓@m✓my✓yc✓co✓ol✓l Are functions that return the row or column
- of the current cell respectively. ex: The cell directly
- above a cell in the D column could then be accessed by
- @nval("d",@myrow-1). NOTE: @myrow and @mycol can't be
- used in specifying ranges.
- R✓Ra✓an✓ng✓ge✓e F✓Fu✓un✓nc✓ct✓ti✓io✓on✓ns✓s
- These functions return numeric values.
- @✓@s✓su✓um✓m(r) Sum all valid (non-blank) entries in the
- region whose two corners are defined by
- the two variable names (e.g. _✓c_✓5_✓:_✓e_✓1_✓4) or
- the range name specified.
- @✓@p✓pr✓ro✓od✓d(r) Multiply together all valid (non-blank)
- entries in the specified region.
- @✓@a✓av✓vg✓g(r) Average all valid (non-blank) entries in
- the specified region.
- @✓@c✓co✓ou✓un✓nt✓t(r) Count all valid (non-blank) entries in
- the specified region.
- @✓@m✓ma✓ax✓x(r) Return the maximum value in the speci-
- fied region. See also the multi argu-
- ment version of _✓@_✓m_✓a_✓x below.
- @✓@m✓mi✓in✓n(r) Return the minimum value in the speci-
- fied region. See also the multi argu-
- ment version of _✓@_✓m_✓i_✓n below.
- @✓@s✓st✓td✓dd✓de✓ev✓v(r) Return the sample standard deviation of
- the cells in the specified region.
- @✓@l✓lo✓oo✓ok✓ku✓up✓p(e,r)
- @✓@l✓lo✓oo✓ok✓ku✓up✓p(se,r) Evaluates the expression _✓e (or _✓s_✓e) and
- then searches through the range _✓r for a
- matching value. The range should be
- either a single row or a single column.
- The expression can be either a string
- expression or a numeric expression. If
- it is a numeric expression, the range is
- searched for the the last value less
- than or equal to _✓e. If the expression
- is a string expression, the string por-
- tions of the cells in the range are
- searched for an exact string match. The
- value returned is the numeric value from
- the next row and the same column as the
- match, if the range was a single row, or
- the value from the next column and the
- same row as the match if the range was a
- single column.
-
- @✓@h✓hl✓lo✓oo✓ok✓ku✓up✓p(e,r,n)
- @✓@h✓hl✓lo✓oo✓ok✓ku✓up✓p(se,r,n) Evaluates the expression _✓e (or _✓s_✓e) and
- then searches through the first row in
- the range _✓r for a matching value. The
- expression can be either a string
- expression or a numeric expression. If
-
-
-
- 25
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- it is a numeric expression, the row is
- searched for the the last value less
- than or equal to _✓e. If the expression
- is a string expression, the string por-
- tions of the cells in the row are
- searched for an exact string match. The
- value returned is the numeric value from
- the same column _✓n rows below the match.
-
- @✓@v✓vl✓lo✓oo✓ok✓ku✓up✓p(e,r,n)
- @✓@v✓vl✓lo✓oo✓ok✓ku✓up✓p(se,r,n) Evaluates the expression _✓e (or _✓s_✓e) and
- then searches through the first column
- in the range _✓r for a matching value.
- The expression can be either a string
- expression or a numeric expression. If
- it is a numeric expression, the column
- is searched for the the last value less
- than or equal to _✓e. If the expression
- is a string expression, the string por-
- tions of the cells in the column are
- searched for an exact string match. The
- value returned is the numeric value from
- the same row _✓n columns to the right of
- the match.
-
- @✓@i✓in✓nd✓de✓ex✓x(e,r) Use the value of the expression _✓e to
- index into the range _✓r. The numeric
- value at that position is returned. The
- value 1 selects the first item in the
- range, 2 selects the second item, etc.
- The range _✓r should be either a single
- row or a single column.
-
- @✓@s✓st✓ti✓in✓nd✓de✓ex✓x(e,r) Use the value of _✓e to index into the
- range _✓r. The string value at that posi-
- tion is returned. The value 1 selects
- the first item in the range, 2 selects
- the second item, etc. The range _✓r
- should be either a single row or a sin-
- gle column.
-
- N✓Nu✓um✓me✓er✓ri✓ic✓c F✓Fu✓un✓nc✓ct✓ti✓io✓on✓ns✓s
- All of these functions operate on floating point numbers
- (doubles) and return numeric values. Most of them are
- standard system functions more fully described in _✓m_✓a_✓t_✓h(3).
- The trig functions operate with angles in radians.
-
- @✓@s✓sq✓qr✓rt✓t(e) Return the square root of _✓e.
-
- @✓@e✓ex✓xp✓p(e) Return the exponential function of _✓e.
-
- @✓@l✓ln✓n(e) Return the natural logarithm of _✓e.
-
- @✓@l✓lo✓og✓g(e) Return the base 10 logarithm of _✓e.
-
-
-
- 26
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- @✓@f✓fl✓lo✓oo✓or✓r(e) Return the largest integer not greater
- than _✓e.
-
- @✓@c✓ce✓ei✓il✓l(e) Return the smallest integer not less
- than _✓e.
-
- @✓@r✓rn✓nd✓d(e) Round _✓e to the nearest integer.
- default: round-to-even (banker's round),
- *.5 will round to the closest even num-
- ber;
-
- @✓@r✓ro✓ou✓un✓nd✓d(e,n) Round _✓e to _✓n decimal places. n may be
- positive to round off the right side of
- the decimal, and negative to round off
- the left side. See @rnd(e) above for
- rounding types.
-
- @✓@a✓ab✓bs✓s(e)
- @✓@f✓fa✓ab✓bs✓s(e) Return the absolute value of _✓e.
- @✓@p✓po✓ow✓w(e1,e2) Return _✓e_✓1 raised to the power of _✓e_✓2.
- @✓@h✓hy✓yp✓po✓ot✓t(e1,e2) Return sqrt(e1*e1+e2*e2), taking precau-
- tions against unwarranted overflows.
- p✓pi✓i @✓@p✓pi✓i A constant quite close to pi.
- @✓@d✓dt✓tr✓r(e) Convert _✓e in degrees to radians.
- @✓@r✓rt✓td✓d(e) Convert _✓e in radians to degrees.
- @✓@s✓si✓in✓n(e)
- @✓@c✓co✓os✓s(e)
- @✓@t✓ta✓an✓n(e) Return trigonometric functions of radian
- arguments. The magnitude of the argu-
- ments are not checked to assure meaning-
- ful results.
-
- @✓@a✓as✓si✓in✓n(e) Return the arc sine of _✓e in the range
- -pi/2 to pi/2.
-
- @✓@a✓ac✓co✓os✓s(e) Return the arc cosine of _✓e in the range
- 0 to pi.
-
- @✓@a✓at✓ta✓an✓n(e) Return the arc tangent of _✓e in the range
- -pi/2 to pi/2.
-
- @✓@a✓at✓ta✓an✓n2✓2(e1,e2) Returns the arc tangent of _✓e_✓1/_✓e_✓2 in the
- range -pi to pi.
-
- @✓@m✓ma✓ax✓x(e1,e2,...) Return the maximum of the values of the
- expressions. Two or more expressions
- may be specified. See also the range
- version of _✓@_✓m_✓a_✓x above.
-
- @✓@m✓mi✓in✓n(e1,e2,...) Return the minimum of the values of the
- expressions. Two or more expressions
- may be specified. See also the range
- version of _✓@_✓m_✓i_✓n above.
-
-
-
-
- 27
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- @✓@s✓st✓to✓on✓n(se) Convert string expression _✓s_✓e to a
- numeric value.
-
- @✓@e✓eq✓qs✓s(se1,se2) Return 1 if string expression _✓s_✓e_✓1 has
- the same value as string expression _✓s_✓e_✓2,
- 0 otherwise.
-
- @✓@n✓nv✓va✓al✓l(se,e) Return the numeric value of a cell
- selected by name. String expression _✓s_✓e
- must evaluate to a column name
- (``A''-``ZZ'') and _✓e must evaluate to a
- valid row number (The number of rows is
- system dependant). If _✓s_✓e or _✓e is out of
- bounds, or the cell has no numeric
- value, the result is 0. You can use
- this for simple table lookups. Be sure
- the table doesn't move unexpectedly!
- See also _✓@_✓s_✓v_✓a_✓l() below.
-
- S✓St✓tr✓ri✓in✓ng✓g F✓Fu✓un✓nc✓ct✓ti✓io✓on✓ns✓s
- @✓@s✓su✓ub✓bs✓st✓tr✓r(se,e1,e2) Extract and return from string expres-
- sion _✓s_✓e the substring indexed by charac-
- ter number _✓e_✓1 through character number
- _✓e_✓2 (defaults to the size of _✓s_✓e if beyond
- the end of it). If _✓e_✓1 is less than 1 or
- greater than _✓e_✓2, the result is the null
- string. For example,
-
- @substr ("Nice jacket", 4, 7)
-
- returns the string ``e jac''.
-
- @✓@f✓fm✓mt✓t(se,e) Convert a number to a string. The argu-
- ment _✓s_✓e must be a valid _✓p_✓r_✓i_✓n_✓t_✓f(3) format
- string. _✓e is converted according to the
- standard rules. For example, the
- expression
-
- @fmt ("**%6.3f**", 10.5)
-
- yields the string ``**10.500**''. _✓e is
- a double, so applicable formats are e,
- E, f, g, and G. Try ``%g'' as a start-
- ing point.
-
- @✓@s✓sv✓va✓al✓l(se,e) Return the string value of a cell
- selected by name. String expression _✓s_✓e
- must evaluate to a column name
- (``A''-``ZZ'') and _✓e must evaluate to a
- valid row number (The number of rows is
- system dependant). If _✓s_✓e or _✓e is out of
- bounds, or the cell has no string value,
- the result is the null string. You can
- use this for simple table lookups. Be
-
-
-
- 28
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- sure the table doesn't move unexpect-
- edly!
-
- @✓@u✓up✓pp✓pe✓er✓r(e) and @✓@l✓lo✓ow✓we✓er✓r(e) will change the string
- expression to upper or lower case.
-
- @✓@c✓ca✓ap✓pi✓it✓ta✓al✓l(e) will convert the first letter of words
- in a string into upper case and other
- letters to lower case (the latter if all
- letters of the string are upper case).
-
- @✓@e✓ex✓xt✓t(se,e) Call an external function (program or
- script). The purpose is to allow arbi-
- trary functions on values, e.g. table
- lookups and interpolations. String
- expression _✓s_✓e is a command or command
- line to call with _✓p_✓o_✓p_✓e_✓n(3). The value
- of _✓e is converted to a string and
- appended to the command line as an argu-
- ment. The result of _✓@_✓e_✓x_✓t() is a string:
- the first line printed to standard out-
- put by the command. The command should
- emit exactly one output line. Addi-
- tional output, or output to standard
- error, messes up the screen. _✓@_✓e_✓x_✓t()
- returns a null string and prints an
- appropriate warning if external func-
- tions are disabled, _✓s_✓e is null, or the
- attempt to run the command fails.
-
- External functions can be slow to run,
- and if enabled are called at each screen
- update, so they are disabled by default.
-
- A simple example:
-
- @ext ("echo", a1)
-
- You can use _✓@_✓s_✓t_✓o_✓n() to convert the
- _✓@_✓e_✓x_✓t() result back to a number. For
- example:
-
- @ston (@ext ("form.sc.ext", a9 +
- b9))
-
- Note that you can built a command line
- (including more argument values) from a
- string expression with concatenation.
- You can also "hide" the second argument
- by ending the command line (first argu-
- ment) with `` #'' (shell comment).
-
- @✓@c✓co✓ol✓lt✓to✓oa✓a(e) Returns a string name for a column from
- the numeric argument. For example:
-
-
-
- 29
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- @coltoa(@mycol-1)
- @nval(coltoa(@mycol-1), @myrow+1)
-
-
-
- F✓Fi✓in✓na✓an✓nc✓ci✓ia✓al✓l F✓Fu✓un✓nc✓ct✓ti✓io✓on✓ns✓s
- Financial functions compute the mortgage (or loan) pay-
- ment, future value, and the present value functions. Each
- accepts three arguments, an amount, a rate of interest
- (per period), and the number of periods. These functions
- are the same as those commonly found in other spreadsheets
- and financial calculators
-
- @✓@p✓pm✓mt✓t(e1,e2,e3) _✓@_✓p_✓m_✓t(60000,.01,360) computes the monthly
- payments for a $60000 mortgage at 12%
- annual interest (.01 per month) for 30
- years (360 months).
-
- @✓@f✓fv✓v(e1,e2,e3) _✓@_✓f_✓v(100,.005,36) computes the future
- value for of 36 monthly payments of $100
- at 6% interest (.005 per month). It
- answers the question: "How much will I
- have in 36 months if I deposit $100 per
- month in a savings account paying 6%
- interest compounded monthly?"
-
- @✓@p✓pv✓v(e1,e2,e3) _✓@_✓p_✓v(1000,.015,36) computes the present
- value of an a ordinary annuity of 36
- monthly payments of $1000 at 18% annual
- interest. It answers the question: "How
- much can I borrow at 18% for 30 years if
- I pay $1000 per month?"
-
- D✓Da✓at✓te✓e a✓an✓nd✓d T✓Ti✓im✓me✓e F✓Fu✓un✓nc✓ct✓ti✓io✓on✓ns✓s
- Time for _✓s_✓s follows the system standard: the number of
- seconds since 1970. All date and time functions except
- _✓@_✓d_✓a_✓t_✓e() return numbers, not strings.
-
- @✓@n✓no✓ow✓w Return the current time encoded as the
- number of seconds since the beginning of
- the epoch (December 31, 1969, midnight,
- GMT.)
-
- @✓@d✓dt✓ts✓s(e1,e2,e3) _✓@_✓d_✓t_✓s(9,14,1988) converts the date
- September 14, 1988 to the number of sec-
- onds from the epoch to the first second
- of 9/14/88, local time. For example,
- _✓@_✓d_✓a_✓t_✓e(_✓@_✓d_✓t_✓s(12,14,1976)) yields
-
- _✓T_✓u_✓e _✓D_✓e_✓c _✓1_✓4 _✓0_✓0_✓:_✓0_✓0_✓:_✓0_✓0 _✓1_✓9_✓7_✓6
-
- The month should be range from 1 to 12,
- the day should range from 1 to the num-
- ber of days in the specified month, and
-
-
-
- 30
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- the year should range from 1970 to 1999.
- (Hey! That isnt't that far off! What
- then? ;-)
-
- @✓@t✓tt✓ts✓s(e1,e2,e3) _✓@_✓t_✓t_✓s(8,20,45) converts the time 8:40:45
- to the number of seconds since midnight,
- the night before. The hour should range
- from 0 to 23; the minutes and seconds
- should range from 0 to 59.
-
- The following functions take the time in seconds (e.g.
- from _✓@_✓n_✓o_✓w) as an argument and return the specified value.
- The functions all convert from GMT to local time.
-
- @✓@d✓da✓at✓te✓e(e) Convert the time in seconds to a date
- string 24 characters long in the follow-
- ing form:
-
- _✓S_✓u_✓n _✓S_✓e_✓p _✓1_✓6 _✓0_✓1_✓:_✓0_✓3_✓:_✓5_✓2 _✓1_✓9_✓7_✓3
-
- Note that you can extract parts of this
- fixed-format string with _✓@_✓s_✓u_✓b_✓s_✓t_✓r().
-
- @✓@y✓ye✓ea✓ar✓r(e) Return the year. Valid years begin with
- 1970. The last legal year is system
- dependent.
-
- @✓@m✓mo✓on✓nt✓th✓h(e) Return the month, encoded as 1 (January)
- to 12 (December).
-
- @✓@d✓da✓ay✓y(e) Return the day of the month, encoded as
- 1 to 31.
-
- @✓@h✓ho✓ou✓ur✓r(e) Return the number of hours since mid-
- night, encoded as 0 to 23.
-
- @✓@m✓mi✓in✓nu✓ut✓te✓e(e) Return the number of minutes since the
- last full hour, encoded as 0 to 59.
-
- @✓@s✓se✓ec✓co✓on✓nd✓d(e) Return the number of seconds since the
- last full minute, encoded as 0 to 59.
-
- S✓SE✓EE✓E A✓AL✓LS✓SO✓O
- bc(1), dc(1), crypt(1), pss(1), sc(1)
-
- B✓BU✓UG✓GS✓S
- Top-to-bottom, left-to-right evaluation of expressions is
- silly. A proper following of the dependency graph with
- (perhaps) recourse to relaxation should be implemented.
-
- Only one previous value is saved from any call of _✓@_✓e_✓x_✓t().
- If it is used more than once in a spreadsheet and external
- functions are enabled and later disabled, the last
- returned value pops up in several places.
-
-
-
- 31
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- On some systems, if the cell cursor is in column 0 with
- topline enabled (so the current cell is highlighted), or
- if any cell in column 0 is highlighted, the corresponding
- row number gets displayed and then blanked during a screen
- refresh. This looks like a bug in _✓c_✓u_✓r_✓s_✓e_✓s.
-
- Many commands give no indication (a message or beep) if
- they have null effect. Some should give confirmation of
- their action, but they don't.
-
- A✓AU✓UT✓TH✓HO✓OR✓RS✓S
- This is a much modified version of a public domain spread
- sheet originally authored by James Gosling, and subse-
- quently modified and posted to USENET by Mark Weiser under
- the name _✓v_✓c.
-
- The program was subsequently renamed _✓s_✓c, and further modi-
- fied by numerous contributors, Jeff Buhrt of Proslink,
- Inc. ({sequent, uunet}!sawmill!prslnk!buhrt) and Robert
- Bond of Sequent, prominent among them.
-
- Finally, Art Mulder ( art@cs.ualberta.ca ) -in one of
- those classic ``it seemed like a good idea at the time''
- moves - took _✓s_✓c version 6.19 and radically overhauled its
- user interface, to create _✓s_✓s.
-
- Apologies are freely offered to all _✓s_✓c adherents offended
- by what has been done to ``their'' program.
-
- C✓CO✓OP✓PY✓YR✓RI✓IG✓GH✓HT✓T
- Copyright (c) 1992,1993 by Arthur E. Mulder.
-
- All Rights Reserved
-
- Permission to use, copy, modify, and distribute this soft-
- ware and its documentation for any purpose and without fee
- is hereby granted, provided that the above copyright
- notice appears in all copies and that both that copyright
- notice and this permission notice appear in supporting
- documentation, and that the names of any persons or orga-
- nizations involved not be used in advertising or publicity
- pertaining to distribution of the software without spe-
- cific, written prior permission.
-
- ALL PERSONS AND ORGANIZATIONS INVOLVED IN THE CREATION OF
- THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
- SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MER-
- CHANTABILITY AND FITNESS. IN NO EVENT SHALL ANY OF THEM
- BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAM-
- AGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLI-
- GENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CON-
- NECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-
-
- 32
-
-
-
- SS 1.3.3 (1) SS 1.3.3 (1)
-
-
- Translation: I'm not trying to restrict anyone's free use
- of ``ss'', I just don't want anyone turning around and (a)
- claiming that they wrote it or (b) selling it.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 33
-